Contextualized Telephony Message Management

ABSTRACT

In one or more embodiments, one or more methods and/or systems described can transform an inbound call into one or more call streams and/or call states that can include at least one of a contextualized or personalized message, a promotion, a coupon, an offer, a voucher, an advertisement, and an opt-in program, among others. For example, the one or more methods and/or systems described can perform: receiving identification information associated with a telephony device; determining, based on the identification information, a message for the user; and sending the message to the telephony device. For instance, the message can include a coupon or discount for a good or service. In one example, the coupon or discount can be sent via a short message service text message. In another example, the coupon or discount can include a computer-readable image that can be sent via a multimedia messaging service message.

PRIORITY CLAIM

The present application is a continuation of U.S. patent applicationSer. No. 12/898,606, filed Oct. 5, 2010, titled “ContextualizedTelephony Message Management,” which claims benefit of U.S. ProvisionalApplication Ser. No. 61/248,593, filed Oct. 5, 2009, titled “Method andApparatus For Syndicated Streaming Multimedia Messaging Network”, whichapplications are hereby incorporated by reference in their entirety asthough fully and completely set forth herein.

BACKGROUND

1. Technical Field

This description relates generally to the field of managing calls withina telephony management system, and, more specifically, to dynamicallyproviding call support services within a telephony management system.

2. Description of the Related Art

Callers place calls to entities (e.g., call centers, restaurants,government agencies, businesses, educational institutions, retailers,etc.), in order to obtain information and/or to speak to representativeswithin departments of an entity. In the past, callers have spentbillions of minutes per day listening to silence or pre-recorded sets ofrepeating messages or music. Callers are subjected to navigatingprompts, often outdated, presented to them by impersonal interactivevoice response (IVR) telephony systems. This process is inefficient andfrustrating to callers and is equally unsatisfactory to management ofmany of these entities. Entities have spent billions of dollars inpromoting, communicating, and developing their product, service, orbrand messaging in traditional marketing channels, but those entitieshave overlooked and/or missed various opportunities which remainsuntapped in the millions of calls flowing into their entities every day.

BRIEF DESCRIPTION OF THE DRAWINGS

The preferred embodiments will become apparent upon reading thefollowing detailed description and upon reference to the accompanyingdrawings in which:

FIGS. 1A and 1B illustrate block diagrams of one or more networkcommunication systems, according to one or more embodiments;

FIG. 2 illustrates a block diagram of states of a telephone call withina telephony management system, according to one or more embodiments;

FIG. 3 illustrates a method of sending a message to a telephony device;

FIG. 4 illustrates a method of transferring a call from a telephonydevice to an extension within the telephony management system;

FIG. 5 illustrates a method of providing a message based at least on oneor more submenu choices;

FIG. 6 illustrates a method of operating a telephony management system;

FIG. 7 illustrates an exemplary block diagram of an entity location thatreceives messages from users' telephony devices, according to one ormore embodiments;

FIGS. 8A and 8B illustrate sequence diagrams of an exemplary call flow,according to one or more embodiments;

FIG. 9 illustrates an exemplary entity-relational diagram that can beused in a rules engine, according to one or more embodiments; and

FIG. 10 illustrates an exemplary block diagram of a data processingsystem, according to one or more embodiments.

While the invention may be susceptible to various modifications andalternative forms, specific embodiments thereof are shown by way ofexample in the drawings and will herein be described in detail. Itshould be understood, however, that the drawings and detaileddescription thereto are not intended to limit the disclosure to theparticular form disclosed, but on the contrary, the disclosure is tocover all modifications, equivalents and alternatives falling within thespirit and scope of an invention as defined by appended claims.

DETAILED DESCRIPTION

In one or more embodiments, methods and/or systems described cantransform inbound calls into a series call streams and/or call statesthat can include contextualized, personalized, relevant messages,information, promotions, coupons, offers, advertising, surveys,vouchers, opt-in programs and/or other specific messages. For example,targeting multi-site, national retail entities, embodiments describedherein enable richly personalized experiences for on-hold customers andprovide entity-wide brand consistency. For instance, a system describedherein can provide callers with prompts during a call, to receivemessages, offers, promotions, discounts, coupons and opt-in programs ina form of response messages (e.g., text messages, multimedia messages,etc.) to a caller's phone or email address. Upon receipt of a promptduring various segments of the call, the caller can respond, which caninclude a pressing of an indicated number or sequence of numbers, byvoice acknowledgement, or other possible forms of confirmation which caninclude facial or gestural recognition in the case of video calls. Inresponse to caller confirmation, a message or series of relevantmessages that can include messages, offers, promotions, discounts,coupons and opt-in programs, can be transmitted to the caller'stelephony device for use in future transactions that can be conductedwith the entity.

Turning now to FIG. 1A, a block diagram of one or more networkcommunications systems is illustrated, according to one or moreembodiments. As shown in FIG. 1A, one or more telephony devices (TDs)1610-1614 can be coupled to a public switched telephone network (PSTN)1130. In one example, one or more of TDs 1610-1614 can be coupled toPSTN 1130 in a wired fashion. In another example, one or more of TDs1610-1614 can be coupled to PSTN 1130 in a wireless fashion. Forinstance, telephony device (TD) 1610 can include a mobile telephonydevice (e.g., a cellular telephony device, a satellite telephony device,etc.), and the mobile telephony device can be coupled to PSTN 1130 via acellular or satellite telephony network coupled to or included in PSTN1130. In one or more embodiments, a TD can include a voice over Internetprotocol (VoIP) telephony device. In various embodiments, a TD caninclude a personal digital assistant (PDA), a smart phone, or ahand-held computing device that allows a user of the TD to communicatewith PSTN 1130 and/or other networks such as a wireless local areanetwork (WLAN), among others.

Users (e.g., callers) can use TDs 1610-1614 to place calls to one ormore entity locations (ELs) 1410 and 1510. As shown, PSTN 1130 can becoupled to one or more routers 1420 and 1520 of ELs 1410 and 1510,respectively. In one example, each of routers 1420 and 1520 can becoupled to PSTN 1130 via a primary rate interface (PRI). In one or moreembodiments, routers 1420 and 1520 can receive the calls from one ormore of TDs 1610-1614 and can determine where and/or how to route thecalls. For example, routers 1420 and 1520 can determine where and/or howto route the calls based on one or more criteria and/or configurations.As illustrated, ELs 1410 and 1510 can include one or more extensions(Exts) 1430-1434 and 1530-1534, respectively. In one example, extension(Ext) 1430 of entity location (EL) 1410 can be associated with a women'sclothing department of EL 1410, Ext 1432 can be associated with awomen's shoe department of EL 1410, and Ext 1434 can be associated witha children's clothing department of EL 1410. In another example, Ext1530 of EL 1510 can be associated with a lumber department of EL 1510,Ext 1532 can be associated with a paint department of EL 1510, and Ext1534 can be associated with a power tools department of EL 1510.

As shown, data centers 1210 and 1310 can be coupled to one or morenetworks 1110 and 1120. In one or more embodiments, network 1110 and/ornetwork 1120 can include a wired network, a wireless network or acombination of wired and wireless networks. In one or more embodiments,network 1110 can include a wide are network (WAN). In one example,network 1110 can include or be coupled to a WAN that accessible by thepublic (e.g., the Internet). In a second example, network 1110 can formpart of the Internet. In another example, network 1110 can be or includea private network.

In one or more embodiments, network 1120 can include a WAN. For example,network 1120 can be or include a private network. In one or moreembodiments, network 1120 can be or include a multiprotocol labelswitching (MPLS) network. In one example, the MPLS network can be usedto create virtual links between two nodes and can encapsulate packets ofvarious network protocols. For instance, packets of the MPLS network canbe assigned labels, and the data included in the labels can be used toforward and/or route the packets of the MPLS network. In one or moreembodiments, a converged MPLS router can interface and/or communicatewith the MPLS network and/or provide network routing for voice and datato each of ELs 1410 and 1510. For example, one or more of routers 1224and 1324 can be or include a converged MPLS router.

In one or more embodiments, router 1420 can be coupled to data centers1210 and 1310 via respective routers 1224 and 1324 and network 1120,and/or router 1520 can be coupled to data centers 1210 and 1310 viarespective routers 1224 and 1324 and network 1120. As shown, router 1224can be coupled to an Internet protocol (IP) private branch exchange(PBX) 1255 that can be coupled to a router 1222, and a customer database(CDB) 1250 (e.g., a customer relationship management informationdatabase) can be coupled to router 1222. In one or more embodiments, anIP PBX can provide one or more of session initiation protocol (SIP)registration of one or more extensions (e.g., one or more of Exts1430-1434 and 1530-1534), partitioning of extensions at locations, androuting calls based on one or more rules, among others.

In one or more embodiments, router 1224 can include a voice gateway(VGW) (e.g., an entity VGW). In one or more embodiments, router 1222 caninclude one or more of a firewall mechanism, a firewall service, and oneor more firewall data structures. In one example, router 1222 can beused to separate and/or isolate one or more communications paths of oneor more of router 1224, CDB 1250, and IP PBX 1255 from one or more ofrouter 1220, VGW 1240, CS 1230, database (DB) 1270, and rules engine(RENG) 1260. In another example, router 1222 can be used to separateand/or isolate one or more communications paths of one or more of router1220, VGW 1240, CS 1230, DB 1270, and RENG 1260 from one or more ofrouter 1224, CDB 1250, and IP PBX 1255.

As shown, router 1220, DB 1270, RENG 1260 and VGW 1240 can be coupled toCS 1230, and VGW 1240 can be coupled to router 1222. In one or moreembodiments, CS 1230 can include one or more of router 1220, DB 1270,RENG 1260 VGW 1240, and router 1222. In one or more embodiments, DB 1270can include a relational database management system. For example, DB1270 can include an Oracle database, a DB/2 database, a PostgreSQLdatabase, a SQL Server database, a SQLite database, or a MySQL database,among others.

As illustrated, a media provider 1010 can be coupled to network 1110 viaa router 1020. As shown, media provider 1010 can include a media server1030 that can include various media and/or messages that can be includedand/or provided in a telephone call. For example, media server 1030 canprovide the various media and/or messages to a call server (e.g., CS1230, CS 1330, etc.), so that the call server can provide the variousmedia and/or messages to callers. In one or more embodiments, router1020 can securely communicate with router 1220 and/or router 1320. Inone example, routers 1020 and 1220 can communicate using at least one ofInternet Protocol Security (IPSec), a secure socket layer (SSL), andtransport layer security (TLS), among others. In a second example,routers 1020 and 1220 can communicate via an encrypted tunnel. Inanother example, routers 1020 and 1220 can communicate via a virtualprivate network (VPN). In one or more embodiments, routers 1020 and 1220can include one or more of a firewall mechanism, a firewall service, andone or more firewall data structures.

As shown, a message gateway (MGW) 1710 can be coupled to network 1110.In one or more embodiments, MGW 1710 can provide one or messages via oneor more of a short message service (SMS) and a multimedia messagingservice (MMS) to one or more of TDs 1610-1614. For example, MGW 1710 canbe accessible by a call server (e.g., CS 1230, CS 1330, etc.) via anapplication programming interface (API). For instance, the call servercan use MGW 1710 and its API to fulfill sending one or more ofcontextualized messages, personalized messages, text messages,multimedia messages, information, promotions, coupons, offers, surveys,vouchers, and opt-in programs, among others, to one or more of TDs1610-1614

In one or more embodiments, data center 1310 can be a secondary orbackup data center to data center 1210. For example, elements 1320-1370of data center 1310 can include one or more same and/or similarstructures and/or functionalities as those described with reference torespective elements 1220-1270 of data center 1210. In one or moreembodiments, DB 1370 can be synchronized with DB 1270. For example, DB1370 can include data of DB 1270 should data center 1210 becomeunreachable or should DB 1270 or another element of data center 1210fail.

Turning now to FIG. 1B, a block diagram of one or more networkcommunications systems is illustrated, according to one or moreembodiments. As shown, FIG. 1B can include elements of FIG. 1A. Asillustrated, PSTN 1130 can be coupled to a router 1226 included in datacenter 1210 and coupled to router 1224, and PSTN 1130 can be coupled toa router 1326 included in data center 1310 and coupled to router 1324.In one or more embodiments, ELs 1410 and 1510 can be coupled to PSTN1130 via network 1120 and routers 1224 and 1226 or routers 1324 and1326. As illustrated, ELs 1410 and 1510 can be coupled to network 1120via respective routers 1420 and 1520.

Turning now to FIG. 2, a block diagram of states of a telephone callwithin a telephony management system is illustrated, according to one ormore embodiments. As shown, a call 2000 can include one or more states2010-2080. In one or more embodiments, one state can follow anotherstate without a specific order, and/or one or more states can berepeated. In one example, routing state 2050 or hold state 2070 canfollow conversation state 2060. In another example, routing state 2050and/or dial plan state can be repeated. In one or more embodiments,states 2010-2080, as shown, may not depict any specific order and areenumerated for exemplary and/or identification purposes.

As illustrated, analytic information associated with one or more ofstates 2010-2080 can be sent to and/or collected by CS 1230, accordingto one or more embodiments. In one example, the analytic information caninclude information associated with whether or not a rule of a rulesengine was invoked and/or whether or not the rule of the rules enginewas matched. In a second example, the analytic information can includeinformation associated with what media was presented to a caller and/orwhat time the media was presented to the caller. In a third example, theanalytic information can include information associated with a receivedcall (e.g., call time, called number, calling number, etc.). In a fourthexample, the analytic information can include information associatedwith a call transfer (e.g., call transfer time, transfer number, callingnumber, etc.). In a fifth example, the analytic information can includeinformation associated with a disconnection of a call (e.g.,disconnection call time, called number, calling number, etc.). Forinstance, the call may have been disconnected by the caller hanging upduring a call state or disconnecting after a “bye” state. In a sixthexample, the analytic information can include information associatedwith whether or not a message was proffered to a caller and/or whetheror not the message was accepted by the caller. In a seventh example, theanalytic information can include information associated with providing acustomized menu to a caller and/or whether or not a specific customizedmenu matched one or more portions of a profile of the caller.

In one or more embodiments, ringback state 2010 can include sendingmedia to a TD that has placed a call to an entity. For example, themedia sent to the TD can include audio and/or video information that canconvey information associated with the entity and/or one or more goodsand/or services that can be provided by the entity. For instance, callinformation associated with call 2000 can include one or more of anidentification of the TD (caller ID) and a telephone number that the TDcalled (DNIS or called party) that can be used to determine and/orprovide the media sent to the TD.

In one or more embodiments, a first state of a call entered by the TDupon answer of the call at the telephony management system is the“hello” state. The hello state 2020 can include providing anacknowledgement portion to the TD. For example, the acknowledgement canbe based on the call information and/or profile information associatedwith the call information. In one instance, the acknowledgement canthank the user of the TD for being a rewards member of the entity. Inanother instance, the acknowledgement can thank the user of the TD forcalling the entity.

In one or more embodiments, offer state 2030 can include sending offerinformation to the TD. In one or more embodiments, one or more methodsand/or systems described enable presentation of offer information tousers of various offer types for callers to accept or decline during acourse of a set of call states presented during the call. The offertypes presented in the offer information include offers to receiveinformation, discounts, coupons, reviews, directions or other types ofinformation. Further, the offer information can be presented in variousforms. For example, the offer information can include one or more ofaudio, a graphic or image, text, and a video that is associated with oneor more of the entity, the entity location, a brand of an item and/orservice for sale by the entity, a sale event, a store-wide sale event, adepartment sale event, hours and/or days of operation of the entityand/or an entity location. The offer information further includesinstructions for the caller to accept or decline the offer for deliveryof the message. In one embodiment, the offer information indicatesdelivery of the message to the caller's mobile telephone. In oneexample, the message can be sent via a SMS or a MMS.

The caller can indicate whether or not the offered message is to be sentto the TD. For example, the user can send DTMF signaling informationthat can indicate whether or not the message is to be sent to the TD. Inanother instance, the information from the user can include voiceinformation that can indicate whether or not the message is to be sentto the TD. In one or more embodiments, the message sent to the TD caninclude one or more of audio information, video information, graphicinformation, and text information. For example, the message can includeone or more of contextualized message(s), personalized message(s),information, coupon(s), promotion(s), advertisement(s) survey(s),voucher(s), directions, map(s), membership program(s), eventinformation, brand information, product information, music, tones (e.g.,sonic logos, sound marks, etc.), opt-in program(s) and other specificoffer(s). In one or more embodiments, the message can be anadvertisement promoting a brand for a good or service separately offeredfor discount, promotion, or sale. In another instance, the offer caninclude a discount and/or coupon for one or more goods and/or servicesfor sale by the entity. In one or more embodiments, one or more of theoffer, the discount, the coupon, and/or the advertisement can beassociated with a third party in addition to or instead of the entity.Still further, in one or more embodiments, the message can be based onone or more portions of the profile information associated with the callinformation.

In one or more embodiments, dial plan state 2040 can include sending amenu (e.g., an audio menu, a graphical menu, etc.) to the TD. In oneexample, a default menu can be sent to the TD. In another example, amenu can be built or configured using the call information and/or one ormore portions of the profile information associated with the callinformation, and can be sent to the TD. In one or more embodiments, thedefault menu and/or the configured menu can include choices or optionsto use one or more other menus (e.g., submenus), choices or options tobe transferred to a department and/or extension, and/or to receive amessage. For example, the message can include one or more ofcontextualized message(s), personalized message(s), information,coupon(s), promotion(s), survey(s), voucher(s), directions, map(s),membership program(s), event information, brand information, productinformation, music, tones (e.g., sonic logos, sound marks, etc.), opt-inprogram(s) and other specific offers(s).

In one or more embodiments, routing state 2050 can include transferringthe call to a person, department, and/or extension of the entity coupledto the telephony management system. In one example, transferring thecall to a department and/or extension can include sending media (e.g.,audio media, graphical media, video media, etc.) to the TD while thecall is being transferred. In another example, transferring the call toa department and/or extension can include sending a message to the TDwhile the call is being transferred. In one or more embodiments,conversation state 2060 can include a conversation of the user of the TDand an employee or representative of the entity.

In one or more embodiments, hold state 2070 can include sending media(e.g., audio media, graphical media, video media, etc.) to the TD whilethe call is on hold. In one example, the audio and/or video media can bea media stream from a multicast of media streams. For instance, adetermination of the media stream from the multicast of media streamscan be based on the call information, a geographic location of the TD,and/or one or more portions of the profile information associated withthe call information. In one or more embodiments, the profileinformation can include demographic information of the user of the TD.In one or more embodiments, a last state of the call, state 2080 (a“bye” state), can include sending media (e.g., audio media, graphicalmedia, video media, etc.) to the TD near a conclusion of the call. Forexample, the media can thank the user of the TD for calling the entityand/or for patronage.

Turning now to FIG. 3, a method of sending a message to a telephonydevice is illustrated, according to one or more embodiments. At 3010, acall can be received. For example, router 1420 can receive a call fromTD 1610 via PSTN 1130. At 3020, the call can be redirected to a voicegateway. For example, router 1420 can redirect the call to VGW 1220. At3030, call information associated with the call can be sent to a callserver. For example, VGW 1220 can send the call information associatedwith the call to CS 1230. In one or more embodiments, the callinformation associated with the call can include one or more of anidentification of the TD (caller ID) and a telephone number that the TDcalled (DNIS or called party). In one or more embodiments, VGW 1220 cancommunicate with CS 1230 via a socket connection over a network. In oneexample, VGW 1220 can communicate with CS 1230 using a hypertexttransfer protocol (HTTP) via the socket. In another example, VGW 1220can communicate with CS 1230 using a data description language, such asVoiceXML (VXML), via the socket. In one or more embodiments, VXML canprovide call control. For example, VGW 1220 can receive one or more ofdual-tone multi-frequency (DTMF) signaling information and voiceinformation and provide the information corresponding to the DTMFsignaling information and/or the voice information to CS 1230.

At 3040, profile information associated with the call information can bedetermined. In one or more embodiments, determining the profileinformation can include querying a database for the profile informationassociated with the call information. For example, CS 1230 can perform astructured query language (SQL) query of DB 1270 using the callinformation to determine the profile information. For instance, theprofile information associated with multiple users can be indexed by oneor more of an identification of a TD and a telephone number that the TDcalled. In one or more embodiments, DB 1270 can be periodically updatedwith caller information from CDB 1250.

In one or more embodiments, the profile information associated with thecall information can include information associated with the user of theTD. For example, the profile information can include informationassociated with the user such as one or more of a time zone, a country,a state, a city, a zip code, a telephony device type, a telephony deviceoperating system, a telephony device phone number, a distance from anentity location, at least one movie rented, at least one television showwatched, a number of children, at least one investment, at least oneproduct purchase, a marital status, an age, at least one interest, atleast one hobby, a gender, a birthday, an income, at least one pasttransaction, a content rating, a membership status, and at least onepast department of an entity called, among others. At 3050, messagingand routing for the call can be determined based on one or more of thedetermined profile information and the telephone number that the TDcalled. In one or more embodiments, CS 1230 can utilize rules engine1260 to determine messaging and routing for the call. For example, oneor more portions of the profile information can match and/or satisfy oneor more rules of rules engine 1260 to determine messaging and routingfor the call.

At 3060, a message can be determined. In one example, the message can beassociated with one or more of the entity, the entity location, a brandof an item and/or service for sale by the entity, a sale event, astore-wide sale event, a department sale event, hours and/or days ofoperation of the entity and/or an entity location. In a second example,the message can include an advertisement. In another example, themessage can include a discount and/or coupon for one or more goodsand/or services for sale by the entity. In one or more embodiments, themessage can be based on one or more portions of the profile informationassociated with the call information. In one or more embodiments, one ormore of a message, a coupon, an offer, an advertisement, and a discountcan be associated with a third party in addition to or instead of theentity.

At 3070, a proffer of a message can be sent to the TD. In one or moreembodiments, the proffer of the message can convey a request of the userto provide input to accept or decline the message. In one example, theproffer of the message can convey a request of the user to input anumber on a keypad of the TD to indicate that the message is to be sentto the TD. For instance, the request of the user to input a number on akeypad of the TD can convey: “Press ‘one’ to receive the message, orpress ‘two’ to continue.” In another example, the proffer of the messagecan convey a request of the user to speak a word into a sound inputdevice of the TD to indicate that the message is to be sent to the TD.For instance, the request of the user to speak a word can convey: “Say‘yes’ to receive the message, or say ‘no’ to continue.”

At 3080, the user input can be received. For example, CS 1230 canreceive, via VGW 1240, information from the user indicating whether ornot the message is to be sent to the TD. In one instance, theinformation from the user can include DTMF signaling information thatcan indicate whether or not the user is to be sent to the TD. In anotherinstance, the information from the user can include voice informationthat can indicate whether or not the message is to be sent to the TD. At3090, it can be determined whether or not to send the message to the TD.If the message is not to be sent to the TD, the method can proceed to3120. In one or more embodiments, an amount of time transpiring withoutreceiving user input can indicate that the message is not to be sent tothe TD.

If the message is to be sent to the TD, the message can be sent to theTD at 3100. In one or more embodiments, the message can be sent to theTD can include one or more of audio information, video information,graphic information, and text information. In one example, the messagecan be sent via a SMS or a MMS. For instance, CS 1230 can send a SMSmessage or a MMS message that includes the message via MGW 1710 to TD1610. In another example, the message can be sent via a data network. Inone instance, the message can be sent via a data network such aspublic-accessible wide area network such as the Internet. In anotherinstance, the message can be sent via a data network such as a cellulartelephone network that supports data communications other than telephoneconversations. In one example, the message can be sent via an emailmessage to an email address of the user of the TD. In another example,the message can be sent to an application that is configured to executeon the TD.

In one or more embodiments, the message can include one or more oftextual information, image information, video information, and audioinformation. In one example, a text message can include the message. Inanother example, one or more graphics and/or images can include themessage. For instance, the one or more graphics and/or images caninclude a bar code (e.g., a computer-readable one or two-dimensional barcode) that can be used as a coupon or discount for one or more goodsand/or services. In one or more embodiments, the message can be used toidentify one or more of the TD and the user of the TD. For example, thebar code that can be used as a coupon or discount for one or more goodsand/or services can include information that can be used to identify oneor more of the TD and the user of the TD.

At 3120, a menu for the call can be built. For example, CS 1230 canretrieve multiple pieces of media from storage and/or DB 1270 andcombine the multiple pieces of media to build the menu for the call. Inone instance, the multiple pieces of media can be ordered based on oneor more portions of the profile information. For example, a piece ofmedia associated with a department where the user spends more timeand/or more money can be prioritized to be included in the menu beforeother pieces of media. For instance, a piece of media may include “Press‘one’ for the ladies' shoes department” and may be prioritized to beincluded in the menu before another piece of media such as “Press ‘two’for the men's department”, based on information of the caller's profile.In this fashion, the menu options (e.g., digits “one”, “two”, “three”,etc.) can be dynamically mapped and/or planned contextually.

In one or more embodiments, building the media for the various callstates can include cross fading multiple pieces of media. For instance,the multiple pieces of media can include multiple audio files, andbuilding various media sequences and/or the menu can include combiningthe multiple audio files such that the various media sequences and/orthe menu appears to be a continuous audio stream to a human ear.

At 3130, the menu can be provided to the TD. At 3140, user input can bereceived. For example, CS 1230 can receive information from the userindicating a department and/or extension. In one instance, theinformation from the user can include DTMF signaling information thatcan indicate the department and/or extension. In another instance, theinformation from the user can include voice information that canindicate the department and/or extension.

At 3150, a selection, based on the user input, can be determined. Forexample, the menu can include two or more departments and/or extensions,and the selection of a department and/or extension can be determinedfrom the user input. If the selection is for a first department and/orextension, then the call can be transferred to the first departmentand/or extension at 3160. If the selection is for a second departmentand/or extension, then the call can be transferred to the seconddepartment and/or extension at 3170. If the selection is for a thirddepartment and/or extension, then the call can be transferred to thethird department and/or extension at 3180.

Turning now to FIG. 4, a method of transferring a call from a telephonydevice to an extension within the telephony management system isillustrated, according to one or more embodiments. At 4010, audiosignals and/or data can be streamed and/or transmitted to the TD. Forexample, CS 1230 can stream and/or transmit audio that is specific tothe user of the TD or that is sourced from one or more audio streams. Inone instance, the stream of audio can be based on one or more portionsof the profile information associated with the call information. Forexample, the stream of audio can include information that is specific toand/or customized for the caller based on one or more portions of theprofile information associated with the call information. In anotherinstance, the stream of audio can be one of a multicast of audiostreams. In one or more embodiments, CS 1230 can be a source of themulticast of audio streams.

In one or more embodiments, an audio stream of the multicast of audiostreams can be determined based on one or more portions of the profileinformation associated with the call information. For example, a portionof the profile information can include an age. In one instance, a firstaudio stream of the multicast of audio streams can be determined if theage is within thirteen to sixteen years of age. In another instance, asecond audio stream of the multicast of audio streams can be determinedif the age is within forty-three to fifty-five years of age. In one ormore embodiments, an audio stream of the multicast of audio streams canbe determined based the extension that the call is being transferred.For example, a first audio stream of the multicast of audio streams canbe determined if the call is being transferred to Ext 1430, and a secondaudio stream of the multicast of audio streams can be determined if thecall is being transferred to Ext 1432.

In one or more embodiments, a message can be included in the audiostream. At 4020, it can be determined whether or not to send a profferof a message. If it is determined not to send the proffer of a message,then the method can proceed to 4080. If it is determined to send theproffer of a message, a message can be determined at 4030. In one ormore embodiments, the message can be determined in a same or similarfashion as determined at 3060 of FIG. 3. At 4040, the proffer of themessage can be sent to the TD. In one or more embodiments, the profferof the message can be sent to the TD in a same or similar fashion as3070 of FIG. 3.

At 4050, user input can be received. In one or more embodiments, theuser input can be received in a same or similar fashion as user inputcan be received with reference to method element 3080 of FIG. 3. At4060, it can be determined whether or not to send the message to the TD.In one or more embodiments, determining whether or not to send themessage to the TD can be performed in a same or similar fashion as 3090of FIG. 3. If the message is not to be sent to the TD, the method canproceed to 4080. If the message is to be sent to the TD, the message canbe sent to the TD at 4070. In one or more embodiments, the message canbe sent to the TD in a same or similar fashion as the message can besent to the TD with reference to method element 3100 of FIG. 3.

At 4080, call transfer information can be sent to a VGW. For example, CS1230 can send the call transfer information to VGW 1240. For instance,the call transfer information can include extension information and anaddress. In one or more embodiments, the address can include an Internetprotocol (IP) address. For example, the address can be an IP address ofa router that manages communications for an entity location. Forinstance, the IP address can be an IP address of router 1420 thatmanages communications for EL 1410, and the call transfer informationcan be of form similar to “1430@IPaddress”, where IPaddress is an IPaddress of router 1420 and “1430” can be used by router 1420 to routethe call transfer to Ext 1430. In one or more embodiments, the IPaddress of the router that manages communications for the entitylocation can be a publicly routable IP address. In one or moreembodiments, the IP address of the router that manages communicationsfor the entity location can be a private IP address. For example, theprivate IP address may be associated with one or more IP addressesdescribed in Request for Comments (RFC) 1918 which is available from theInternet Engineering Task Force (IETF). For instance, network 1120 canbe a private network that uses private IP addresses. At 4090, the calltransfer information can be sent to an IP PBX to transfer the call. Forexample, VGW 1240 can send the call transfer information to IP PBX 1255via a SIP.

In one or more embodiments, CS 1230 can be or include a SIP agent thatcan continue to stream the audio to the TD and maintain a SIP statewhile other one or more portions of methods and/or processes areoccurring. At 4100, a call transferred message can be received. Forexample, CS 1230 can receive a SIP message indicating that the call hasbeen transferred to Ext 1430. At 4110, the audio that is streamed to theTD can be ceased or stopped.

Turning now to FIG. 5, a method of providing a message based at least onone or more submenu choices is illustrated, according to one or moreembodiments. At 5010, an initial menu can be built with one or moresubmenu choices and can include one or more department and/or extensionchoices. In one or more embodiments, the initial menu can be built in asimilar fashion to the menu built in method element 3120 of FIG. 3. Inone or more embodiments, the submenu choices of the initial menu caninclude choices that are user selectable to navigate to another menuassociated with a choice. In one example, a submenu choice can be for ahardware department that can lead to a submenu that can include two ormore submenu items or options of plumbing hardware, fasteners (e.g.,screws, bolts, nuts, nails, glue, etc.), and electrical hardware (e.g.,wire, electrical outlets, circuit breakers, etc.), among others. Inanother example, a submenu choice can be for a children's departmentthat can lead to a submenu that can include two or more submenu items oroptions of children's shoes, boys' clothing, girls' clothing, toddlers'clothing, and pre-teens' clothing, among others.

At 5020, the initial menu with submenu choices can be provided to theTD. For example, CS 1230 can provide the initial menu with submenuchoices to TD 1610. At 5030, user input can be received. For example, CS1230 can receive user input from TD 1610, and the user input can includea choice from the initial menu. In one instance, the user input caninclude DTMF signaling information that can indicate a choice from theinitial menu. In another instance, the user input can include voiceinformation that can indicate a choice from the initial menu.

At 5040, it can be determined whether or not the user input indicates atransfer. For example, a menu choice from the initial menu can beassociated with a department and/or extension. For instance, the menuchoice can be associated with Ext 1430. If the user input indicates amenu choice that is associated with a department and/or extension, thecall can be transferred to the department and/or extension at 5150. Ifthe user input does not indicate a menu choice that is associated with adepartment and/or extension, the method can proceed to 5050, where thesubmenu choice can be stored.

At 5060, it can be determined whether or not to send a proffer of amessage. In one or more embodiments, CS 1230 can determine whether ornot to send the proffer of a message to the user of the TD based on anumber of submenu choices that have been selected by the user, anordered sequence of two or more submenu choices that have been selectedby the user, an ability of the TD to receive a message, a distance theTD is from an entity location, an amount of time transpiring during thecall, and/or one or more portions of the profile information associatedwith the call information.

In one or more embodiments, determining whether or not to send theproffer of a message to the user of the TD can include determiningwhether or not the TD includes a capability to receive a message. In oneexample, CS 1230 can search a database using the call informationassociated with the call to determine whether or not the TD includes thecapability to receive the message. In one instance, the database caninclude telephone numbers (e.g., caller IDs) and corresponding one ormore capabilities associated with the telephone numbers, and CS 1230 cansearch the database using the telephone number (e.g., caller ID) of TD1610 to determine whether or not TD 1610 can receive the message. Inanother instance, the database can include telephone numbers (e.g.,caller IDs) and corresponding one or more communication methods and/orsystems that can be used to send the message to the user of the TD. Forexample, CS 1230 can search the database using the telephone number(e.g., caller ID) of TD 1610 to determine whether or not an emailaddress is associated with the telephone number of TD 1610, where theemail address can be used to send the message to the user of TD 1610.

In one or more embodiments, determining whether or not to send theproffer of a message to the user of the TD can include determining adistance the TD is from an entity location. In one example, CS 1230 cansearch a database using the call information associated with the call todetermine distance the TD is from an entity location. For instance, thedatabase can include telephone numbers (e.g., caller IDs) andcorresponding geographic locations associated with the telephonenumbers, and CS 1230 can search the database using the telephone number(e.g., caller ID) of TD 1610 to determine the geographic location of TD1610. Using the geographic location (e.g., latitude, longitude, and/oraltitude) of TD 1610 and a geographic location of an entity location, CS1230 can determine a distance TD 1610 is from the entity location.

In a second example, CS 1230 can query a system (e.g., a cellulartelephone system, a satellite telephony system, a VoIP telephony system,etc.) using the call information associated with the call to determine adistance the TD is from an entity location. In one instance, the systemcan provide a geographic location of the TD or a geographic location ofa cellular telecommunications antenna communicating with the TD. Inanother instance, CS 1230 can provide a geographic location of an entitylocation and the telephone number (e.g., caller ID) of TD 1610 to thesystem, and the system can respond by providing a distance TD 1610 isfrom the entity location.

In another example, CS 1230 can query TD 1610 for a geographic locationof TD 1610, and TD 1610 can respond by providing its geographic locationthat can be usable by CS 1230 to determine a distance TD 1610 is from anentity location. In one instance, TD 1610 can include a globalpositioning (GPS) device that can determine a geographic location of TD1610 that can be provided to CS 1230. In a second instance, a system(e.g., a cellular telephone system) can provide a geographic location ofTD 1610 or a geographic location of a cellular telecommunicationsantenna communicating with TD 1610 to TD 1610. In another instance, theuser of TD 1610 can provide a geographic location of TD 1610 to TD 1610.In one example, the user can provide one or more of a zip code, anaddress, a town or city name, and an intersection of streets, amongothers, to TD 1610.

If it is determined not to send the proffer of a message, then themethod can proceed to 5130. If it is determined to send the proffer of amessage, a message can be determined at 5070, where a message can bedetermined based at least on one or more submenu choices. In oneexample, the message can be determined based on a number of submenuchoices that have been selected by the user. In a second example themessage can be determined based on an ordered sequence of two or moresubmenu choices that have been selected by the user. In one or moreembodiments, the message can also be determined based on one or moreportions of the profile information associated with the call informationand/or a distance from an entity location. In one example, a firstmessage can include a first discount (e.g., a first coupon) for one ormore goods and/or services to a first TD (e.g., TD 1610) based on afirst distance the first TD is from the entity location (e.g., EL 1410),and a second message can include a second discount (e.g., a secondcoupon) for the one or more goods and/or services to a second TD (e.g.,TD 1612) based on a second distance the second TD is from the entitylocation. For instance, the second distance can be greater than thefirst distance, and the second discount can be greater than the firstdiscount. In a second example, the message can include one or more of amap and directions to an entity location.

At 5080, the proffer of the message to the TD can be sent to the TD. Inone or more embodiments, the proffer of the message can be sent to theTD in a same or similar fashion as 3070 of FIG. 3. At 5090, user inputcan be received. In one or more embodiments, the user input can bereceived in a same or similar fashion as user input can be received withreference to method element 3080 of FIG. 3. At 5100, it can bedetermined whether or not to send the message to the TD. In one or moreembodiments, determining whether or not to send the message to the TDcan be performed in a same or similar fashion as 3090 of FIG. 3. If themessage to the TD is not to be sent to the TD, the method can proceed to5130. If the message to the TD is to be sent to the TD, the message canbe sent to the TD at 5120. In one or more embodiments, the message canbe sent to the TD in a same or similar fashion as the message can besent to the TD with reference to method element 3100 of FIG. 3.

At 5130, a submenu can be built. In one or more embodiments, the submenucan be built in a similar fashion to the menu built in method element5010. At 5140, the submenu can be provided to the TD. In one or moreembodiments, the submenu can be provided to the TD in a similar fashionto providing the initial menu to the TD in method element 5020. In oneor more embodiments, the method can proceed to 5030. In one or moreembodiments, a submenu of an initial menu or another submenu may includetwo or more department and/or extension options without further submenuoptions. In one or more embodiments, a submenu of an initial menu oranother submenu may include one or more submenu options and/or one ormore department and/or extension options that have already beenpresented to the user of the TD during the call.

Turning now to FIG. 6, a method of operating a telephony managementsystem is illustrated, according to one or more embodiments. At 6010,the call server (e.g., CS 1230, CS 1330, etc.) can receive information.For example, the received information can include analytic informationthat can be stored or can be request information. In one instance, theanalytic information can include information of and/or resulting fromone or more of states 2010-2080. For example, the analytic informationcan include a result from a condition evaluation. In another instance,the request information can include a request for information from arules engine (e.g., RENG 1260, RENG 1360, etc.). In one or moreembodiments, the received information can be from a device differentfrom the call server or from a method or process utilized by the callserver.

At 6020, content of the received information can be determined. If thereceived information includes analytic information, then the analyticinformation can be stored at 6030. In one example, the analyticinformation can be stored in a log file (e.g., a log file of the callserver). In another example, the analytic information can be stored in adatabase (e.g., DB 1270, DB 1370, etc.). In one or more embodiments, themethod can proceed to 6010.

If the received information includes request information, then themethod can proceed to 6040 where a database (e.g., DB 1270, DB 1370,etc.) can be queried. In one or more embodiments, querying the databasecan include sending information to the database. For example, one ormore of an identification of a TD (caller ID) and a telephone numberthat the TD called (DNIS or called party) can be sent to the database,where the database can use the one or more of the identification of theTD and the telephone number that the TD called to retrieve associatedinformation. At 6050, a result can be received from the database.

At 6060, a rules engine (e.g., RENG 1260, RENG 1360, etc.) can bequeried. In one or more embodiments, querying the rules engine caninclude sending information to the rules engine. In one example, therules engine can be sent information to determine whether or not toproffer a message to a user of a TD. In a second example, the rulesengine can be sent information to determine a message to be sent to auser of a TD. In a third example, the rules engine can be sentinformation associated with a call sequence or call state. In anotherexample, the rules engine can be sent information associated with theresult from the database query.

At 6070, a result from the rules engine can be received. In one or moreembodiments, the result from the rules engine can include a defaultresult (e.g., no rule matched the query information) or a result basedon the query information matching one or more rules. At 6080, the resultfrom the rules engine can be sent to the device, method, or process thatsent the request for the result. In one or more embodiments, the methodcan proceed to 6010.

Turning now to FIG. 7, an exemplary block diagram of an entity locationthat receives messages from users' telephony devices is illustrated,according to one or more embodiments. In one or more embodiments, EL1410 can include one or more point of sale terminals (POSes) 7010-7016coupled to router 1420, and each of POSes 7010-7016 can be or include acomputing device. In one or more embodiments, a point of sale terminal(POS) (e.g., a POS of POSes 7010-1016) can receive message information,or information associated with the message information, sent from a TD(e.g., a TD of TDs 1610-1616). For example, the message information, orinformation associated with the message information, can include acoupon that can be used to provide a discount on compensation (e.g.,cost) for one or more goods and/or services messaged for sale by anentity. For instance, POS 7010 can receive a coupon via messageinformation 7250, or information associated with the message information7250, and a user of TD 1610 can receive ten percent (10%) off a purchaseof ladies shoes, a brand of ladies shoes, clothing, a brand of clothing,one or more goods and/or services messaged for sale by the entity, etc.In one or more embodiments, message information, or informationassociated with the message information, sent from a TD to a POS caninclude an identifier and/or an index that is usable to identify one ormore of a message, a coupon, the TD, and a user of the TD, among others.

In one or more embodiments, EL 1410 can include an optical input device(OID) 7110 coupled to POS 7010, where OID 7110 can sense and/or discernone or more images from a display 7230 of TD 1610 and/or from a papermedium. For example, OID 7110 can transform the one or more images fromdisplay 7230 of TD 1610 and/or from the paper medium and provide dataassociated with the one or more images to POS 7010, where the data isusable by POS 7010 and conveys message information to POS 7010. In oneor more embodiments, OID 7110 and/or POS 7010 can use one or more ofpattern recognition, artificial intelligence, and computer visionsystems and/or methods to determine information conveyed by the one ormore images from display 7230 of TD 1610 and/or from the paper medium.In one or more embodiments, determining the information conveyed by theone or more images can include transforming optical signals from the oneor more images into data that can be used by a computing device and/orstored in a memory medium included in or coupled to the computingdevice.

In one example, OID 7110 can sense and/or discern a computer-readableimage (CRI) 7280 displayed by display 7230 of TD 1610 and provideinformation that is included and/or encoded in CRI 7280 to POS 7010. Forinstance, CRI 7280 can include a barcode, and OID 7110 can sense and/ordiscern the barcode displayed by display 7230 and provide informationthat is included and/or encoded in the barcode to POS 7010. In one ormore embodiments, the information included and/or encoded in CRI 7280can include information associated with message information 7250. In oneor more embodiments, message information 7250 can be received by TD 1610when CS 1230 sends a message to TD 1610.

In one or more embodiments, EL 1410 can include a radio frequency device(RFD) 7112 coupled to POS 7012. For example, RFD 7112 can include one ormore of a radio frequency receiver and a radio frequency transmitterconfigured to communicate with a TD, such as TD 1612. As shown, TD 1612can include a RFD 7360 that can include one or more of a radio frequencyreceiver and a radio frequency transmitter configured to communicatewith another RFD, such as RFD 7112. In one or more embodiments, RFD 7360can transmit message information 7350 to RFD 7112, and RFD 7112 canprovide message information 7350 to POS 7012. In one example, a user ofTD 1612 can direct TD 1612 to transmit message information 7350 to RFD7112. In another example, RFD 7112 can transmit a query to TD 1612, viaRFD 7360, and TD 1612 can respond to the query by transmitting messageinformation 7350 to RFD 7112, via RFD 7360. In one or more embodiments,message information 7350 can be received by TD 1612 when CS 1230 sends amessage to TD 1612.

In one or more embodiments, RFDs 7112 and 7360 can communicate using oneor more ISM (industrial, scientific and medical) bands. For instance, anISM band can include a frequency range of 6.765-6.795 Mhz, 433.05-434.79Mhz, 902-928 Mhz, 2.4-2.5 Ghz, 5.725-5.875 Ghz, or 24.0-24.25 Ghz, amongothers. In one or more embodiments, RFDs 7112 and 7360 can communicateusing one or more of IEEE 802.11, IEEE 802.15, IEEE 802.15.4, ZigBee,6LoWPAN, spread spectrum of frequencies, frequency modulation of acarrier wave, and amplitude modulation of a carrier wave, among others.In one or more embodiments, TD 1612 can be identified by informationused in communicating with RFD 7112 and/or POS 7012. In one example, TD1612 can be identified by a media access control (MAC) address used incommunicating with RFD 7112 and/or POS 7012. In another example, TD 1612can be identified by an IP address or a portion of an IP address used incommunicating with RFD 7112 and/or POS 7012. For instance, IPv6(Internet protocol version 6) can be used in communicating with RFD 7112and/or POS 7012, and TD 1612 can be identified by IP address or aportion of an IP address used by TD 1612 can be used to identify TD1612. In one or more embodiments, one or more of the MAC address, the IPaddress, and the portion of the IP address can be included in analyticinformation that can be sent CS 1230 for storage and/or analysis.

In one or more embodiments, EL 1410 can include an infrared device (IRD)7114 coupled to POS 7014. For example, IRD 7114 can include one or moreof an infrared receiver and an infrared transmitter configured tocommunicate with another IRD, such as an IRD 7470. As shown, TD 1614 caninclude IRD 7470 which can include one or more of an infrared receiverand an infrared transmitter configured to communicate with another IRD,such as IRD 7114. In one or more embodiments, IRD 7470 can transmitmessage information 7450 to IRD 7114, and IRD 7114 can provide messageinformation 7450 to POS 7014. In one example, a user of TD 1614 candirect TD 1614 to transmit message information 7450 to IRD 7114. Inanother example, IRD 7114 can transmit a query to TD 1614, via IRD 7470,and TD 1614 can respond to the query by transmitting message information7450 to IRD 7114, via IRD 7470. In one or more embodiments, messageinformation 7450 can be received by TD 1614 when CS 1230 sends a messageto TD 1612.

In one or more embodiments, an entity can use an entity associate 7610(e.g., an employee of the entity, a contractor of the entity, avolunteer of the entity, etc.) to read message text 7580 from a display7530 of a TD 1616, and entity associate 7610 can provide message text7580 to POS 7016. For example, entity associate 7610 can provide messagetext 7580 to POS 7016 via a keyboard or keypad of or coupled to POS7016. In one or more embodiments, message text 7580 can includeinformation associated with message information 7550. For example,information associated with message information 7550 can be includedand/or encoded in message text 7580. In one or more embodiments, messageinformation 7550 can be received by TD 1616 when CS 1230 sends a messageto TD 1616.

As shown, each of TDs 1610-1616 can include respective processors7220-7520 coupled to respective memories 7240-7540 and coupled torespective displays 7230-7250. In one or more embodiments, memories7240-7540 can include respective message information 7250-7550 andrespective program instructions 7290-7590 that can be executed on arespective processor to implement one or more methods and/or systemsdescribed herein. As illustrated, TD 1612 can include RFD 7360 coupledto processor 7320, and TD 1614 can include IRD 7470 coupled to processor7420.

Turning now to FIGS. 8A and 8B, sequence diagrams of an exemplary callflow is illustrated, according to one or more embodiments. As shown, acaller can dial into an entity VGW (e.g., router 1420), and the entityVGW can forward the call to an entity IP PBX (e.g., IP PBX 1255). Theentity IP PBX can route the call to a TMS (telephony management system)VGW that can invoke an application on a call server (e.g., CS 1230)which implements one or more methods described herein. In one or moreembodiments, the TMS VGW can provide call information to the call servervia VXML (Voice eXtensible Markup Language). For example, the callinformation can include an identification of the TD (ANI or caller ID)and a telephone number that the TD called (DNIS or called party).

The application executing on the call server can query a customerdatabase (e.g., CDB 1250) or a database (e.g., DB 1270) that includescaller information from the customer database to determine at least oneentry that includes caller profile information associated with theidentification of the TD. Using the caller profile information and oneor more of analytic information and business rules, the applicationexecuting on the call server can determine and/or produce media thatincludes a proffer of a message to provide to the caller. In one or moreembodiments, the media can include the multiple messages that arecross-faded together. For example, cross-fading the multiple pieces ofmedia can include combining the multiple audio files such that the mediaappears to be a continuous audio stream to a human ear. For instance,the media can include information such as “Thank you for calling CorkiesDepartment Store at Barton River Mall. Please press ‘one’ to receive acoupon to receive ten percent off any pair of ladies shoes, or press‘two’ to continue.”

The caller can provide user input to the TD that indicates a request foror an acceptance of the proffer for the message. For example, the usercan press “one” on a keypad of the TD, and the TMS VGW can receive DTMFsignaling information indicating the “one” on the keypad of the TD. TheTMS VGW can provide VXML data to the call server that indicates the“one” on the keypad of the TD, and the call server can provide themessage to the TD. In one example, the call server can send a coupon forten percent off any pair of ladies shoes to the TD via MGW 1710. Inanother example, the call server can send a coupon for ten percent offany pair of ladies shoes to an email address associated with the callervia a data network. In one or more embodiments, the coupon can includetext and/or graphics usable to receive ten percent off any pair ofladies shoes and/or to identify one or more of the TD and the user ofthe TD.

Using the caller profile information and one or more of analyticinformation and business rules, the application executing on the callserver can determine and/or produce media (e.g., a menu) to the caller.In one or more embodiments, the media can include the multiple pieces ofmedia that are cross-faded together. For instance, the media can includeinformation such as “Please make a selection from the following menuitems. Press ‘one’ for our ladies department; press ‘two’ for our teens'department; press ‘three’ for our children's department; press ‘four’for our men's department; or press ‘zero’ for operator assistance.” Thecaller can provide user input to the TD that indicates the ladiesdepartment. For example, the user can press “one” on a keypad of the TD,and the TMS VGW can receive DTMF signaling information indicating the“one” on the keypad of the TD. The TMS VGW can provide VXML data to thecall server that indicates the “one” on the keypad of the TD, and thecall server can forward (e.g., transfer) the call to an entity telephone(e.g., Ext 1432) via the TMS VGW and the entity VGW.

Turning now to FIG. 9, an exemplary entity-relational diagram that canbe used in a rules engine is illustrated, according to one or moreembodiments. As shown, the entity-relational diagram (ERD) can includetables 9010-9150. In one or more embodiments, the rules engine can beimplemented using a database (e.g., DB 1270, DB 1370, etc.), and tables9010-9150 can store information associated with implementing the rulesengine. For example, the database can be or include a relationaldatabase system (RDBMS), where one or more tables of the ERD can belinked to one or more other tables of the ERD via one or more primarykeys and/or foreign keys. For instance, Department table 9020 can belinked to Store table 9010 via a foreign key (e.g., Department.StoreID).In another instance, StoreMenu table 9040 can be linked to Store table9010 via a first foreign key (e.g., StoreMenu.StoreID) and can be linkedto Department table 9020 via a second foreign key (e.g.,StoreMenu.DepartmentID).

Turning now to FIG. 10, an exemplary block diagram of a data processingsystem is illustrated, according to one or more embodiments. As shown, adata processing system (DPS) 10010 can include a processor 10020, amemory 10030 coupled to processor 10020, and one or more networkinterfaces 10060-10066 coupled to processor 10020. As illustrated,memory 10030 can include one or more applications (APPs) 10040 and10042, an operating system (OS) 10045, and/or a configuration 10050. Inone or more embodiments, one or more of APPs 10040 and 10042 and OS10045 can store program instructions that are executable by processor10020 to implement on or more processes and/or methods described herein.In one or more embodiments, configuration 10050 can store configurationinformation usable by one or more of APPs 10040 and 10042 and OS 10045to implement on or more processes and/or methods described herein.

In one or more embodiments, one or more of network interfaces10060-10066 can be configured to be coupled to one or more of a router,a network, a telephony system, a telephony network, a telephony device,and another DPS, among others. In one or more embodiments, one or moreof the devices and/or systems described herein can include same and/orsimilar structures and/or functionalities as those described withreference to DPS 10010. For example, one or more of: routers 1020,1220-1226, 1420 1320-1326, and 1520; VGWs 1240 and 1340; CSs 1230 and1330; media server 1030; DBs 1270 and 1370; RENGs 1260 and 1360; CDBs1250 and 1350; IP PBXs 1255 and 1355; and POSes 7010-7016 can includesame and/or similar structures and/or functionalities as those describedwith reference to DPS 10010.

In one or more embodiments, the term “memory” can mean a “memory medium”and/or “computer readable memory medium” which is intended to includevarious types of memory or storage, including an installation medium,e.g., a CD-ROM, or floppy disks, a random access memory or computersystem memory such as DRAM, SRAM, EDO RAM, Rambus RAM, NVRAM, EPROM,EEPROM, flash memory etc., and/or a non-volatile memory such as amagnetic media, e.g., a hard drive, and/or optical storage. The memorymedium can include other types of memory as well, or combinationsthereof. In one or more embodiments, the memory medium can be and/orinclude an article of manufacture and/or a software product. Forexample, an article of manufacture and/or a software product can includea memory medium that includes instructions executable by a processor toperform one or more portions of one or more methods and/or processesdescribed herein.

In addition, the memory medium can be located in a first computer inwhich the programs are executed, or can be located in a second differentcomputer and/or hardware memory device that connects to the firstcomputer over a network. In one or more embodiments, the second computerprovides the program instructions to the first computer for execution.The memory medium can also be a distributed memory medium, e.g., forsecurity reasons, where a portion of the data is stored on one memorymedium and the remaining portion of the data can be stored on adifferent memory medium. Also, the memory medium can include one of thenetworks to which the current network is coupled, e.g., a SAN (StorageArea Network).

In one or more embodiments, each of the systems described herein maytake various forms, including a personal computer system, servercomputer system, workstation, network appliance, Internet appliance,wearable computing device, personal digital assistant (PDA), tabletcomputing device, laptop, mobile telephone, mobile multimedia device,embedded computer system, television system, and/or other device. Ingeneral, the terms “computing device”, “computer”, and/or “computersystem” can be broadly defined to encompass any device having aprocessor which executes instructions from a memory medium.

It is noted that, in one or more embodiments, one or more of the methodelements described herein and/or one or more portions of animplementation of a method element can be performed in varying orders,can be repeated, can be performed concurrently with one or more of theother method elements and/or one or more portions of an implementationof a method element, or can be omitted. Additional and/or duplicatedmethod elements can be performed as desired. For example, a processand/or method can perform one or more described method elementsconcurrently with duplicates of the one or more described methodelements. For instance, multiple methods, processes, and/or threads canbe implemented using same described method elements.

In one or more embodiments, concurrently can mean simultaneously. In oneor more embodiments, concurrently can mean apparently simultaneouslyaccording to some metric. For example, two or more method elementsand/or two or more portions of an implementation of a method element canbe performed such that they appear to be simultaneous to a human. It isalso noted that, in one or more embodiments, one or more of the systemelements described herein may be omitted and additional system elementscan be added as desired.

Further modifications and alternative embodiments of various aspects ofthe invention may be apparent to those skilled in the art in view ofthis description. Accordingly, this description is to be construed asillustrative only and is for the purpose of teaching those skilled inthe art the general manner of carrying out the invention. It is to beunderstood that the forms of the invention shown and described hereinare to be taken as embodiments. Elements and materials may besubstituted for those illustrated and described herein, parts andprocesses may be reversed, and certain features of the invention may beutilized independently, all as would be apparent to one skilled in theart after having the benefit of this description of the invention.Changes may be made in the elements described herein without departingfrom the spirit and scope of the invention as described in the followingclaims.

What is claimed is:
 1. A method, comprising: receiving identificationinformation associated with a telephony device operated by a user;providing, to the telephony device, media associated with a plurality ofcall states; determining a message for the user based on at least one ofthe identification information associated with the telephony device anda current call state associated with the telephony device from among theplurality of call states; receiving, from the telephony device, userinput information indicating a request for or an acceptance of themessage; in response to receiving, from the telephony device, the userinput information indicating the request for or the acceptance of themessage, sending the message to the telephony device; querying, basedone the identification information associated with the telephony device,a database for profile information of the user; building a menu thatincludes a plurality of menu options and a plurality of cross fadedmedia, wherein the menu is based on the identification informationassociated with the telephony device and the profile information;providing the menu to the telephony device; receiving, from thetelephony device, user input information indicating a menu option fromthe plurality of menu options; wherein determining the message for theuser based on the at least one of the identification informationassociated with the telephony device and the current call stateassociated with the telephony device from among the plurality of callstates is further based on the user input information indicating themenu option from the plurality of menu options; wherein the profileinformation includes one or more of a time zone, a country, a state, acity, a zip code, a telephony device type, a telephony device operatingsystem, a telephony device phone number, a distance from an entitylocation, at least one movie rented, at least one television showwatched, a number of children, at least one investment, at least oneproduct purchase, a marital status, an age, at least one interest, atleast one hobby, a gender, a birthday, an income, at least one pasttransaction, a content rating, a membership status, and at least onepast department of an entity called; selecting a sequence of mediafiles; and combining the sequence of media files to produce theplurality of cross faded media.
 2. The method of claim 1, furthercomprising: querying, based on the identification information associatedwith the telephony device, a database for profile information of theuser; wherein determining the message for the user based on theidentification information associated with the telephony device isfurther based on the profile information of the user.
 3. The method ofclaim 2, wherein the profile information includes one or more of a timezone, a country, a state, a city, a zip code, a telephony device type, atelephony device operating system, a telephony device phone number, adistance from an entity location, at least one movie rented, at leastone television show watched, a number of children, at least oneinvestment, at least one product purchase, a marital status, an age, atleast one interest, at least one hobby, a gender, a birthday, an income,at least one past transaction, a content rating, a membership status,and at least one past department of an entity called.
 4. The method ofclaim 1, wherein sending, via the message, the message to the telephonydevice includes using at least one of a short message service (SMS) anda multimedia messaging service (MMS) to send the message to thetelephony device.
 5. The method of claim 1, wherein the message isassociated with an entity associated with a telephone number dialed fromthe telephony device.
 6. The method of claim 1, wherein the messageincludes one or more images.
 7. The method of claim 6, wherein at leastone of the one or more images is configured to convey computer-readableinformation via a display of the telephony device; and whereincomputer-readable information is usable to identify one or more of themessage, the telephony device, and the user.
 8. The method of claim 7,wherein the computer-readable information includes a barcode thatincludes the information usable to identify one or more of the message,the telephony device, and the user.
 9. The method of claim 1, whereinthe message includes one or more of textual information, imageinformation, video information, and audio information.
 10. The method ofclaim 1, wherein the telephony device is a mobile telephony device or avoice over Internet protocol (VoIP) telephony device.
 11. The method ofclaim 1, further comprising: determining an identification of the userbased on the identification information associated with the telephonydevice; wherein determining the message for the user based on the atleast one of the identification information associated with thetelephony device and the current call state associated with thetelephony device from among the plurality of call states is furtherbased on the identification of the user.
 12. The method of claim 1,wherein the user input information indicating the request for or theacceptance of the message includes one or more of dual-tonemulti-frequency (DTMF) signaling information, voice information,gestural information from the user that indicates the request for or theacceptance of the message.
 13. The method of claim 1, furthercomprising: determining a geographic location of the telephony device;wherein determining the message for the user based on the at least oneof the identification information associated with the telephony deviceand the current call state associated with the telephony device fromamong the plurality of call states is further based on the geographiclocation of the telephony device.
 14. The method of claim 13, whereindetermining the geographic location of the telephony device includesreceiving the geographic location of the telephony device from a voiceover Internet protocol (VoIP) telephony system.
 15. The method of claim1, further comprising: receiving information from the telephony devicethat indicates a department of an entity; wherein determining themessage for the user based on the at least one of the identificationinformation associated with the telephony device and the current callstate associated with the telephony device from among the plurality ofcall states is further based on the information from the telephonydevice that indicates the department of the entity.
 16. The method ofclaim 1, wherein determining the message for the user based on the atleast one of the identification information associated with thetelephony device and the current call state associated with thetelephony device from among the plurality of call states is furtherbased on a plurality of user selected menu options.
 17. The method ofclaim 1, wherein the message is associated with one or more of anentity, a location of the entity, an item for sale by the entity, aservice for sale by the entity, and a brand of at least one item forsale by the entity.
 18. A system, comprising: a processor; and a memorymedium coupled to the processor; wherein the memory medium includesinstructions, which when executed by the processor, cause the system toperform: receiving identification information associated with atelephony device operated by a user; querying, based on theidentification information associated with the telephony device, adatabase for profile information of the user; providing a plurality ofmenu options to the telephony device based on the profile information ofthe user; receiving, from the telephony device, user input informationindicating one or more selections from the plurality of menu options;determining a message for the user based on the user input informationindicating the one or more selections from the plurality of menuoptions; sending the message to the telephony device; querying, basedone the identification information associated with the telephony device,a database for profile information of the user; building a menu thatincludes a plurality of menu options and a plurality of cross fadedmedia, wherein the menu is based on the identification informationassociated with the telephony device and the profile information;providing the menu to the telephony device; receiving, from thetelephony device, user input information indicating a menu option fromthe plurality of menu options; wherein determining the message for theuser based on the at least one of the identification informationassociated with the telephony device and the current call stateassociated with the telephony device from among the plurality of callstates is further based on the user input information indicating themenu option from the plurality of menu options; wherein the profileinformation includes one or more of a time zone, a country, a state, acity, a zip code, a telephony device type, a telephony device operatingsystem, a telephony device phone number, a distance from an entitylocation, at least one movie rented, at least one television showwatched, a number of children, at least one investment, at least oneproduct purchase, a marital status, an age, at least one interest, atleast one hobby, a gender, a birthday, an income, at least one pasttransaction, a content rating, a membership status, and at least onepast department of an entity called; selecting a sequence of mediafiles; and combining the sequence of media files to produce theplurality of cross faded media.
 19. A non-transitory computer readablememory medium comprising instructions, which when executed on aprocessing system, cause the processing system to perform: receivingidentification information associated with a telephony device operatedby a user; querying, based on the identification information associatedwith the telephony device, a database for profile information of theuser; building a menu that includes a plurality of menu options and aplurality of cross faded media, wherein at least one of the plurality ofcross faded media includes at least one of the plurality of menuoptions, and wherein the plurality of menu options are based on theidentification information associated with the telephony device and theprofile information; providing the menu to the telephony device;receiving, from the telephony device, user input information indicatingone or more selections from the plurality of menu options; determining amessage for the user based on the user input information indicating theone or more selections from the plurality of menu options; sending themessage to the telephony device; querying, based one the identificationinformation associated with the telephony device, a database for profileinformation of the user; building a menu that includes a plurality ofmenu options and a plurality of cross faded media, wherein the menu isbased on the identification information associated with the telephonydevice and the profile information; providing the menu to the telephonydevice; receiving, from the telephony device, user input informationindicating a menu option from the plurality of menu options; whereindetermining the message for the user based on the at least one of theidentification information associated with the telephony device and thecurrent call state associated with the telephony device from among theplurality of call states is further based on the user input informationindicating the menu option from the plurality of menu options; whereinthe profile information includes one or more of a time zone, a country,a state, a city, a zip code, a telephony device type, a telephony deviceoperating system, a telephony device phone number, a distance from anentity location, at least one movie rented, at least one television showwatched, a number of children, at least one investment, at least oneproduct purchase, a marital status, an age, at least one interest, atleast one hobby, a gender, a birthday, an income, at least one pasttransaction, a content rating, a membership status, and at least onepast department of an entity called; selecting a sequence of mediafiles; and combining the sequence of media files to produce theplurality of cross faded media.
 20. The non-transitory computer readablememory medium of claim 31, wherein the memory medium further includesinstructions, which when executed on the processing system, cause theprocessing system to perform: sending a proffer for the message to thetelephony device; and receiving, from the telephony device, user inputinformation indicating a request for or an acceptance of the message;wherein sending the message to the telephony device is performed inresponse to receiving, from the telephony device, the user inputinformation indicating the request for or the acceptance of the message.